Salesforceのイベントモニタリングを使ってみた
Hola! こんにちは〜Salesforceを担当している清水です。
Salesforceのシステム管理者をやっていると、組織のユーザーの情報などを確認するときに、標準機能だけでは賄えない部分を確認したいことが発生するかと思います。普段、有償オプションのためあまり使う機会がない「Event Monitoring」と、イベントログの可視化ツール「Event Monitoring Analytics アプリケーション」を使ってみたので備忘録としてお伝えします!
イベントモニタリングとは?
Salesforce に搭載されている多数のツールの 1 つです。このツールを使用すると、組織のユーザアクティビティをごく細部まで確認できます。システム管理者は、個別のイベントに関する情報を参照したり、イベントのトレンドを追跡したりして、異常な行動をすばやく特定し、会社のデータを保護することができます。イベントモニタリングでは、以下をはじめとする多くの種類のイベントを追跡できます。
- ログイン
- ログアウト
- URI (Salesforce Classic での Web クリック)
- Lightning (Lightning Experience と Salesforce モバイルアプリケーションでの Web クリック、パフォーマンス、エラー)
- Visualforce ページの読み込み
- API コール
- Apex の実行
- レポートのエクスポート
※SalesforceのTrailheadから抜粋
イベントモニタリングで取得可能なログ一覧
※Salesforce社の資料から抜粋
ただしこれらのログ全てを、この後ご紹介する「Event Monitoring Analytics アプリケーション」では確認ができないとのこと。
機能一覧
※Salesforce社の資料から抜粋
ツールの使い方
ログの確認方法
単純にログを確認するだけであれば、一番簡単に確認する方法としてこれだけで良さそうです。
https://salesforce-elf.herokuapp.com/
1、[Production Login]をクリックし、ログインをします
2、次のような画面が表示されます
3、検索する日付範囲を[Date Range] に入力します。
4、検索するイベントタイプを[ Event Type] に入力します。
5、間隔 (毎日または毎時) を[Interval] に入力します。
6、[Apply] をクリックします。
7、ダウンロードアイコンをクリックしたら、ログファイルがCSV形式でダウンロードできました。
注意点としては、イベント発生からEventLogFilesオブジェクトに格納されるまで最大24時間かかることです。またサーバー上のログは、30日で消えます。なので保管が必要ならば、ローカルPCやサーバーにダウンロードする、カスタムオブジェクトやEvent Monitoring Analytics アプリケーションのデータセットにコピーする必要が出てくるようです。
なお以下のようにデータローダーを使ってダウンロードが可能な模様。
ただ実際にダウンロードしてみたら2.8GBもあったので、CSVを開けなかったので、ログの保管が必要な場合、どう運用していくのかは今後考える必要があるかなと思いました。
Event Monitoring Analytics アプリケーションの設定
次に、イベントログの可視化ツールを使うための設定手順です。まずはSalesforce側での設定を行っていきます。なお、詳細な手順は各項目のSalesforce社の記事を参考にしてください。
1、権限セットに、管理者とユーザーをそれぞれ割り当てます。
参考:Event Monitoring Analytics アプリケーション権限セットライセンスおよびユーザ権限
参考:Event Monitoring Analytics アプリケーションユーザ種別の特定
参考:ユーザ権限の選択と Event Monitoring Analytics アプリケーション権限セットへのユーザの割り当て
2、Analytics プラットフォームの有効化を行います。以下の図は、有効化した後の図です。
3、イベントモニタリングの有効化を行います。
参考:Analytics およびイベントモニタリングの Analytics とのインテグレーションの有効化
次にEvent Monitoring Analytics アプリケーションの作成を行ってきます。
1、アプリケーションランチャーに出来ている「Analytics Studio」をクリックします
2、Home画面から「作成」>「アプリケーション」を進み、アプリケーションを作成します。
3、テンプレートを選び進みます。
4、ウィザードにしたがって、設定を進めます。私はデータを保管する日数を最大にしたかったので、全て「30」と入れて進めてみました。
5、名前をつけて作成を押します。
6、これで設定は終わります。30分ほど私の場合は待ちました。
参考:Event Monitoring Analytics アプリケーションの作成と共有
ダッシュボードの使い方
アプリケーションが作成されると、デフォルトで複数のダッシュボードが用意されています。
それぞれの内容は以下の通りです。
※Salesforce社の資料から抜粋
これの他に、ダッシュボードは新規作成やカスタマイズも可能とのこと。
参考:Event Monitoring Analytics アプリケーションの事前作成済みダッシュボード
あとは、オブジェクトの情報を定期的に更新するスケジュールを設定します。SalesforceからUser情報やReport情報などの各オブジェクトから定期的にデータを取得する処理のため、毎日更新するようにスケジュール設定しました。
データマネージャーにて、左サイドバーに[接続]にて、画面右上の[未スケジュール▼]よりスケジュール設定を行います。
下のスクショはすでに設定が終わった状態でのものです。
最後に、ダッシュボードに最新情報を表示させるために、データフローの更新時刻設定を1日1回、任意の時刻に実行するようにスケジュールしておきます。データフローとレシピより、スケジュール設定を行いたいデータフローを選択しスケジュール設定を行います。
上記のオブジェクトが更新された時間より後に、データフローの更新を行うようにするといいと思います。
参考:Event Monitoring Analytics の日次データフローのスケジュール
ダッシュボードでの表示
以下「File」のダッシュボード例ですが、どのユーザーがいつどのファイルで何をしたかまで細かく表示されています。
一度設定してしまえば、システムが自動でスケジュールに合わせて更新してくれるので、管理者の手間もかかりません。
ちなみにつまずいた点で、ユーザーロールの階層を2階層以上にしておかないと、データフローが失敗してしまいます。弊社は便宜上、ロールを複数に分けて階層設定をしておらず、サポートとやりとりした経緯があります。
【関連情報:テンプレート Einstein Analytics アプリケーションのロール階層の要件】
またその他に注意点として、このイベントモニタリングのダッシュボードでは全てにおいて、ユーザーがイベントを発生させたTIMESTAMPが「グリニッジ標準時(GMT)」でしか現状は対応していないため、都度時差の計算を行う必要が出てきます。
最後に
すでにSalesforceが基本のダッシュボードは用意してくれてますが、ダッシュボードに表示する内容も、エディタを使って簡単にカスタマイズできるようだったので、自分たちが見やすいようにカスタマイズしてみるのも良いかと思います。 私がイベントモニタリングのダッシュボードを見ていて、便利だなと思ったのは、「Page Views (URIs)」ダッシュボードです。
実際にSalesforceを利用しているユーザーが、いつSalesforce内のどのページを見に行ってることがダッシュボードを見ると読み解けるので、部署ごとに必要な情報が判断でき、アプリケーションの作成やページのレイアウトを変更したりするなどして、運用改善に役立ちそうだと思いました。